Ichimoku Bollinger BandsThis indicator is a standard set of Bollinger Bands with some functionality borrowed from Ichimoku Kinko Hyo. There's an added SMA (9) that gets shaded green when it's above the basis line of the Bollinger Bands (SMA 20) and turns red when it falls below. No, it's not remotely where the Ichimoku Cloud would appear, but it's a decent trend indicator regardless.
You also get Ichimoku's Lagging Span to help verify the strength of the trend. When the Lagging Span rises above the price history, the trend is up. When the Lagging Span rises above the Bollinger Bands, the uptrend is super strong. And the opposite conditions signal downtrends.
Cerca negli script per "Ichimoku Cloud "
Donchian Cloud - evoA cloud based on the highest high and lowest low of a given period (Donchian), same lines used in Ichimoku Cloud (Conversion line or Base line).
Short term line is based on current time frame, long term line is based on your given multiple of current time frame.
The color of the lines is based on up or down movement.
I stole a piece of code from PineCoders for the multiple time frame:
I have not used this in my trades (yet) so I don't know how good it is, just posting because it looks nice :)
Feel free to share your settings if you can find good ones.
Auto IchimokuA strategy where entries are calculated for you using the Ichimoku Cloud. The IC isn't plotted though, just a heads up.
ULTIMATE ICHIMOKU TRADING SUITEThis is an update of "Uncle Mo's Ultimate Ichimoku V1"
Main features:
2 x Ichimoku Cloud
5 x EMA
2 x MA
1 x HullMA
Williams Fractal
Bollinger Bands - ***NEW***
ATR - ***NEW***
PSAR - ***NEW***
Candlestick Patterns - ***NEW***
Price Action Bars- ***NEW***
List of credits:
@br0qn for the Ichimoku
@RicardoSantos for the Bill Williams Fractal
@EmilianoMesa for the EMAs/MAs
@mohamed982 for the HullMA
@ymaheshreddy4u for the Bollinger Bands
@ChrisMoody for the Price Action Bars and PSAR
@HPotter for the ATR
@repo32 for the Candlestick Patterns
The script is open source and free to use. Feel free to change it around to suit your needs.
***If you copy & paste code from other traders to make your own script, please do remember to give them credit for their amazing work.***
Happy trading!
Crypto optimized Ichimoku and 5 variable SMA / EMAThis script has the option for showing up to 5 moving averages with options to toggle between SMA / EMA. Also includes crypto optimized Ichimoku cloud.
********This script was pieced together from various other's contributions from this site, and I cannot remember who the original authors are*******
Im just combining them to help others with free accounts and limited indicator availability like myself.
I hope this can help someone! Thank you and enjoy.
Crypto optimized Ichimoku and 5 variable SMA / EMAThis script has the option for showing up to 5 moving averages with options to toggle between SMA / EMA. Also includes crypto optimized Ichimoku cloud.
********This script was pieced together from various other's contributions from this site, and I cannot remember who the original authors are*******
Im just combining them to help others with free accounts and limited indicator availability like myself.
I hope this can help someone! Thank you and enjoy.
The Rumpy CloudSimilar basic principle to Ichimoku cloud, more sophisticated implementation.
I've exposed cloud width multipliers in the setting in case anyone wants to experiment with them, there are likely to be other widths of significance.
Lots of lines so settings includes easy batch way of altering color settings.
--------------------------------------
If you find it useful please consider a tip/donation :
BTC - 3BMEXEDyWJ58eXUEALYPadbn1wwWKmf6sA
--------------------------------------
Uncle Mo's Ultimate Ichimoku V1Main features:
2 x Ichimoku Cloud
5 x EMA
2 x MA
1 x HullMA
Williams Fractals
Study is based around trader @br0qn 's Ichimoku script.
Credits also go to:
@RicardoSantos for the Bill Williams Fractals
@EmilianoMesa for the EMAs/MAs
@mohamed982 for the HullMA
The script is open source so please feel free to change it around. I'd greatly appreciate it if you could suggest ways to improve it.
Happy trading!
CoryT's Noro's Ichimoku AlertsA few months ago I took Noro's Ichimoku Cloud and used the AV bot template to throw stops on it. I took some code from JustUncleL
to make it not so hideous. Trailing Stops are turned off, stop losses are turned off (you really don't need them with this), and this is currently a Long/Short strategy, the Longs Only and Shorts Only options are broken right now, I'm tired and you guys can either fix it yourselves or deal with it like this for now.
Hint: If you wanna use this as a long-only strategy just have AV close your buy orders whenever a short is triggered.
CoryT's Noro's IchimokuA few months ago I took Noro's Ichimoku Cloud and used the AV bot template to throw stops on it. I took some code from JustUncleL
to make it not so hideous. Trailing Stops are turned off, stop losses are turned off (you really don't need them with this), and this is currently a Long/Short strategy, the Longs Only and Shorts Only options are broken right now, I'm tired and you guys can either fix it yourselves or deal with it like this for now.
Hint: If you wanna use this as a long-only strategy just have AV close your buy orders whenever a short is triggered.
Ichimoku Kumo Twist Strategy with Presets [Krypt]A simple strategy for testing Ichimoku settings used in the following indicator:
Ichimoku OscillatorIchimoku trading signals mapped to an oscillator.
Primarily to indicate bullish and bearish trends.
Forked from:
Crypto-Optimized Ichimoku Cloud [Public]Made public and open since I didn't really do anything unique here.
Uses 'Double Crypto' ichimokou settings, and adds a couple new visual features over regular ichimokou.
Made the leading spans' cloud much more visible, and added a new cloud between the base and conversion lines hinting at the trend as well as resistance/support.
Multi-Timeframe RPM Gauges with Custom Timeframes by DiGetIntroducing the **Multi-Timeframe RPM Gauges with Custom Timeframes + RSI Combos (mod) by DiGet** – a cutting-edge TradingView indicator meticulously crafted to revolutionize your market analysis.
Imagine having a dynamic dashboard right on your chart that consolidates the power of nine essential technical indicators—RSI, CCI, Stochastic, Williams %R, EMA crossover, Bollinger Bands, ATR, MACD, and Ichimoku Cloud—across multiple timeframes. This indicator not only displays each indicator’s score through an intuitive gauge system but also computes a combined metric to provide you with an at-a-glance understanding of market momentum and potential trend shifts.
**Key Features:**
- **Multi-Timeframe Insight:**
Configure up to four custom timeframes (e.g., 1, 5, 15, 60 minutes) to capture both short-term fluctuations and long-term trends, ensuring you never miss critical market moves.
- **Comprehensive Signal Suite:**
Benefit from a harmonious blend of signals. Whether you rely on momentum indicators like RSI and CCI, volatility measures like Bollinger Bands and ATR, or trend confirmations via EMA, MACD, and Ichimoku, every metric is normalized into actionable percentages.
- **Dynamic, Color-Coded Gauge Display:**
A built-in table presents all your data in a clear, color-coded format—green for bullish, red for bearish, and gray for neutral conditions. This visual representation allows you to quickly gauge market sentiment without sifting through complex charts.
- **Customizable Layout:**
Tailor your experience by toggling individual table columns. Whether you want to focus solely on RSI or dive deep into combined metrics like RSI & CCI or RSI & MACD, the choice is yours.
- **Optimized Utility Functions:**
Proprietary functions standardize indicator values into percentage scores, making it simpler than ever to compare different signals and spot opportunities in real time.
- **User-Friendly Interface:**
Designed for both beginners and seasoned traders, the straightforward input settings let you easily adjust technical parameters and timeframes to suit your personal trading strategy.
This indicator is not just a tool—it’s your new trading companion. It equips you with a multi-dimensional view of the market, enabling faster, more informed decision-making. Whether you’re scanning across various assets or drilling down on a single chart, the Multi-Timeframe RPM Gauges empower you to interpret market data with unprecedented clarity.
Add this indicator to your TradingView chart today and experience a smarter, more efficient way to navigate the markets. Join the community of traders who have elevated their analysis—and be ready to receive countless thanks as you transform your trading strategy!
Ivan Gomes StrategyIG Signals+ - Ivan Gomes Strategy
This script is designed for scalping and binary options trading, generating buy and sell signals at the beginning of each candle. Although it is mainly optimized for short-term operations, it can also be used for medium and long-term strategies with appropriate adjustments.
How It Works
• The indicator provides buy or sell signals at the start of the candle, based on a statistical probability of candle patterns, depending on the timeframe.
• It is essential to enter the trade immediately after the signal appears and exit at the end of the same candle.
• If the first operation results in a loss (Loss), the script will send another trade signal at the start of the next candle. However, if the first trade results in a win (Gain), no new signal will be generated.
• The signals follow cycles of 3 candles, regardless of the timeframe. However, if a Doji candle appears, the cycle is interrupted, and no signals will be generated until the next valid cycle starts.
• The strategy consists of up to two trades per cycle: if the first trade is not successful, the second trade serves as an additional attempt to recover.
Key Points to Consider
1. Avoid trading in sideways markets – If price levels do not fluctuate significantly, the accuracy of the signals may decrease.
2. Trade in the direction of the trend – Using Ichimoku clouds or other trend indicators can help confirm trend direction and improve signal reliability. If the market is in an uptrend (bullish trend) and the indicator generates a sell signal, the most prudent decision would be to wait for a buy signal that aligns with the main trend. The same applies to downtrends, where buy signals may be riskier.
These decisions should be based on chart reading and supported by other technical analysis tools, such as support and resistance levels, which indicate zones where price might face obstacles or reverse direction. Additionally, Fibonacci retracement levels can help identify possible pullback points within a trend. Moving averages are also useful for visualizing the general market direction and confirming whether an indicator signal aligns with the overall price structure. Combining these tools can increase trade accuracy and prevent unnecessary trades against the main trend, reducing risks.
3. Works based on probability statistics – The algorithm analyzes candle formations and their statistical probabilities depending on the timeframe to optimize trade entries.
4. Best suited for scalping and binary options – This strategy performs best in 1-minute and 5-minute timeframes, allowing for multiple trades throughout the day.
Technical Details
• The script detects the candle cycle and assigns an index to each candle to identify patterns and possible reversals.
• It recognizes reference candles, stores their colors, and compares them with subsequent candles to determine if a signal should be triggered.
• Doji candle rules are implemented to avoid false signals in indecisive market conditions. When a Doji appears, the script does not generate signals for that cycle.
• The indicator displays visual alerts and notifications, ensuring fast execution of trades.
Disclaimer
The IG Signals+ indicator was created to assist traders who struggle to analyze the market by providing objective trade signals. However, no strategy is foolproof, and this script does not guarantee profits.
Trading involves significant financial risk, and users should test it in a demo account before trading with real money. Proper risk management is crucial for long-term success.
CMF and Scaled EFI OverlayCMF and Scaled EFI Overlay Indicator
Overview
The CMF and Scaled EFI Overlay indicator combines the Chaikin Money Flow (CMF) and a scaled version of the Elder Force Index (EFI) into a single chart. This allows traders to analyze both indicators simultaneously, facilitating better insights into market momentum and volume dynamics , specifically focusing on buying/selling pressure and momentum , without compromising the integrity of either indicator.
Purpose
Chaikin Money Flow (CMF): Measures buying and selling pressure by evaluating price and volume over a specified period. It indicates accumulation (buying pressure) when values are positive and distribution (selling pressure) when values are negative.
Elder Force Index (EFI): Combines price changes and volume to assess the momentum behind market moves. Positive values indicate upward momentum (prices rising with strong volume), while negative values indicate downward momentum (prices falling with strong volume).
By scaling the EFI to match the amplitude of the CMF, this indicator enables a direct comparison between pressure and momentum , preserving their shapes and zero crossings. Traders can observe the relationship between price movements, volume, and momentum more effectively, aiding in decision-making.
Understanding Pressure vs. Momentum
Chaikin Money Flow (CMF):
- Indicates the level of demand (buying pressure) or supply (selling pressure) in the market based on volume and price movements.
- Accumulation: When institutional or large investors are buying significant amounts of an asset, leading to an increase in buying pressure.
- Distribution: When these investors are selling off their holdings, increasing selling pressure.
Elder Force Index (EFI):
- Measures the strength and speed of price movements, indicating how forceful the current trend is.
- Positive Momentum: Prices are rising quickly, indicating a strong uptrend.
- Negative Momentum: Prices are falling rapidly, indicating a strong downtrend.
Understanding the difference between pressure and momentum is crucial. For example, a market may exhibit strong buying pressure (positive CMF) but weak momentum (low EFI), suggesting accumulation without significant price movement yet.
Features
Overlay of CMF and Scaled EFI: Both indicators are plotted on the same chart for easy comparison of pressure and momentum dynamics.
Customizable Parameters: Adjust lengths for CMF and EFI calculations and fine-tune the scaling factor for optimal alignment.
Preserved Indicator Integrity: The scaling method preserves the shape and zero crossings of the EFI, ensuring accurate analysis.
How It Works
CMF Calculation:
- Calculates the Money Flow Multiplier (MFM) and Money Flow Volume (MFV) to assess buying and selling pressure.
- CMF is computed by summing the MFV over the specified length and dividing by the sum of volume over the same period:
CMF = (Sum of MFV over n periods) / (Sum of Volume over n periods)
EFI Calculation:
- Calculates the EFI using the Exponential Moving Average (EMA) of the price change multiplied by volume:
EFI = EMA(n, Change in Close * Volume)
Scaling the EFI:
- The EFI is scaled by multiplying it with a user-defined scaling factor to match the CMF's amplitude.
Plotting:
- Both the CMF and the scaled EFI are plotted on the same chart.
- A zero line is included for reference, aiding in identifying crossovers and divergences.
Indicator Settings
Inputs
CMF Length (`cmf_length`):
- Default: 20
- Description: The number of periods over which the CMF is calculated. A higher value smooths the indicator but may delay signals.
EFI Length (`efi_length`):
- Default: 13
- Description: The EMA length for the EFI calculation. Adjusting this value affects the sensitivity of the EFI to price changes.
EFI Scaling Factor (`efi_scaling_factor`):
- Default: 0.000001
- Description: A constant used to scale the EFI to match the CMF's amplitude. Fine-tuning this value ensures the indicators align visually.
How to Adjust the EFI Scaling Factor
Start with the Default Value:
- Begin with the default scaling factor of `0.000001`.
Visual Inspection:
- Observe the plotted indicators. If the EFI appears too large or small compared to the CMF, proceed to adjust the scaling factor.
Fine-Tune the Scaling Factor:
- Increase or decrease the scaling factor incrementally (e.g., `0.000005`, `0.00001`, `0.00005`) until the amplitudes of the CMF and EFI visually align.
- The optimal scaling factor may vary depending on the asset and timeframe.
Verify Alignment:
- Ensure that the scaled EFI preserves the shape and zero crossings of the original EFI.
- Overlay the original EFI (if desired) to confirm alignment.
How to Use the Indicator
Analyze Buying/Selling Pressure and Momentum:
- Positive CMF (>0): Indicates accumulation (buying pressure).
- Negative CMF (<0): Indicates distribution (selling pressure).
- Positive EFI: Indicates positive momentum (prices rising with strong volume).
- Negative EFI: Indicates negative momentum (prices falling with strong volume).
Look for Indicator Alignment:
- Both CMF and EFI Positive:
- Suggests strong bullish conditions with both buying pressure and upward momentum.
- Both CMF and EFI Negative:
- Indicates strong bearish conditions with selling pressure and downward momentum.
Identify Divergences:
- CMF Positive, EFI Negative:
- Buying pressure exists, but momentum is negative; potential for a bullish reversal if momentum shifts.
- CMF Negative, EFI Positive:
- Selling pressure exists despite rising prices; caution advised as it may indicate a potential bearish reversal.
Confirm Signals with Other Analysis:
- Use this indicator in conjunction with other technical analysis tools (e.g., trend lines, support/resistance levels) to confirm trading decisions.
Example Usage
Scenario 1: Bullish Alignment
- CMF Positive: Indicates accumulation (buying pressure).
- EFI Positive and Increasing: Shows strengthening upward momentum.
- Interpretation:
- Strong bullish signal suggesting that buyers are active, and the price is likely to continue rising.
- Action:
- Consider entering a long position or adding to existing ones.
Scenario 2: Bearish Divergence
- CMF Negative: Indicates distribution (selling pressure).
- EFI Positive but Decreasing: Momentum is positive but weakening.
- Interpretation:
- Potential bearish reversal; price may be rising but underlying selling pressure suggests caution.
- Action:
- Be cautious with long positions; consider tightening stop-losses or preparing for a possible trend reversal.
Tips
Adjust for Different Assets:
- The optimal scaling factor may differ across assets due to varying price and volume characteristics.
- Always adjust the scaling factor when analyzing a new asset.
Monitor Indicator Crossovers:
- Crossings above or below the zero line can signal potential trend changes.
Watch for Divergences:
- Divergences between the CMF and EFI can provide early warning signs of trend reversals.
Combine with Other Indicators:
- Enhance your analysis by combining this overlay with other indicators like moving averages, RSI, or Ichimoku Cloud.
Limitations
Scaling Factor Sensitivity:
- An incorrect scaling factor may misalign the indicators, leading to inaccurate interpretations.
- Regular adjustments may be necessary when switching between different assets or timeframes.
Not a Standalone Indicator:
- Should be used as part of a comprehensive trading strategy.
- Always consider other market factors and indicators before making trading decisions.
Disclaimer
No Guarantee of Performance:
- Past performance is not indicative of future results.
- Trading involves risk, and losses can exceed deposits.
Use at Your Own Risk:
- This indicator is provided for educational purposes.
- The author is not responsible for any financial losses incurred while using this indicator.
Code Summary
//@version=5
indicator(title="CMF and Scaled EFI Overlay", shorttitle="CMF & Scaled EFI", overlay=false)
cmf_length = input.int(20, minval=1, title="CMF Length")
efi_length = input.int(13, minval=1, title="EFI Length")
efi_scaling_factor = input.float(0.000001, title="EFI Scaling Factor", minval=0.0, step=0.000001)
// --- CMF Calculation ---
ad = high != low ? ((2 * close - low - high) / (high - low)) * volume : 0
mf = math.sum(ad, cmf_length) / math.sum(volume, cmf_length)
// --- EFI Calculation ---
efi_raw = ta.ema(ta.change(close) * volume, efi_length)
// --- Scale EFI ---
efi_scaled = efi_raw * efi_scaling_factor
// --- Plotting ---
plot(mf, color=color.green, title="CMF", linewidth=2)
plot(efi_scaled, color=color.red, title="EFI (Scaled)", linewidth=2)
hline(0, color=color.gray, title="Zero Line", linestyle=hline.style_dashed)
- Lines 4-6: Define input parameters for CMF length, EFI length, and EFI scaling factor.
- Lines 9-11: Calculate the CMF.
- Lines 14-16: Calculate the EFI.
- Line 19: Scale the EFI by the scaling factor.
- Lines 22-24: Plot the CMF, scaled EFI, and zero line.
Feedback and Support
Suggestions: If you have ideas for improvements or additional features, please share your feedback.
Support: For assistance or questions regarding this indicator, feel free to contact the author through TradingView.
---
By combining the CMF and scaled EFI into a single overlay, this indicator provides a powerful tool for traders to analyze market dynamics more comprehensively. Adjust the parameters to suit your trading style, and always practice sound risk management.
MyLibraryLibrary "MyLibrary"
This library contains various trading strategies and utility functions for Pine Script.
simple_moving_average(src, length)
simple_moving_average
@description Calculates the Simple Moving Average (SMA) of a given series.
Parameters:
src (float) : (series float) The input series (e.g., close prices).
length (int) : (int) The number of periods to use for the SMA calculation.
Returns: (series float) The calculated SMA series.
exponential_moving_average(src, length)
exponential_moving_average
@description Calculates the Exponential Moving Average (EMA) of a given series.
Parameters:
src (float) : (series float) The input series (e.g., close prices).
length (simple int) : (int) The number of periods to use for the EMA calculation.
Returns: (series float) The calculated EMA series.
safe_division(numerator, denominator)
safe_division
@description Performs division with error handling for division by zero.
Parameters:
numerator (float) : (float) The numerator for the division.
denominator (float) : (float) The denominator for the division.
Returns: (float) The result of the division, or na if the denominator is zero.
strategy_moving_average_crossover(shortLength, longLength)
strategy_moving_average_crossover
@description Implements a Moving Average Crossover strategy.
Parameters:
shortLength (int) : (int) The length for the short period SMA.
longLength (int) : (int) The length for the long period SMA.
Returns: (series float, series float, series bool, series bool) The short SMA, long SMA, crossover signals, and crossunder signals.
strategy_rsi(rsiLength, overbought, oversold)
strategy_rsi
@description Implements an RSI-based trading strategy.
Parameters:
rsiLength (simple int) : (int) The length for the RSI calculation.
overbought (float) : (float) The overbought threshold.
oversold (float) : (float) The oversold threshold.
Returns: (series float, series bool, series bool) The RSI values, long signals, and short signals.
ichimoku_cloud(convPeriod, basePeriod, spanBPeriod, laggingSpanPeriod)
ichimoku_cloud
@description Computes Ichimoku Cloud components.
Parameters:
convPeriod (int) : (int) The conversion line period.
basePeriod (int) : (int) The base line period.
spanBPeriod (int)
laggingSpanPeriod (int)
Returns: (series float, series float, series float, series float, series float) The conversion line, base line, leading span A, leading span B, and lagging span.
strategy_ichimoku_conversion_baseline()
strategy_ichimoku_conversion_baseline
@description Implements an Ichimoku Conversion Line and Baseline strategy.
Returns: (series float, series float, series bool, series bool) The conversion line, baseline, crossover signals, and crossunder signals.
debug_print(labelText, value, barIndex)
debug_print
@description Prints values to the chart for debugging purposes.
Parameters:
labelText (string) : (string) The label text.
value (float) : (float) The value to display.
barIndex (int) : (int) The bar index where the label should be displayed.
Kijun Sen BaseWhat is Kijun Sen?
Kijun-sen also means "base line" and is the mid-point of the 26-period high and low. Kijun-sen is typically used in conjunction with Tenkan-sen (conversion line) or (the 9-period midpoint price) to generate trade signals when they cross. Kijun-sen is typically used in conjunction with the other Ichimoku indicators.
What is the Kijun Sen Base?
The Kijun Sen Base is the center line in the Ichimoku Cloud Indicator. We have taken that line out and made it an indicator on its own , color-coded it, and allowed traders to track the price for a clean and simple base filter.
Is this a Moving Average?
NO
The Difference Between Kijun-sen (Base Line) and a Simple Moving Average (SMA)
The Kijun-sen is a midpoint of the high and low prices over the last 26 periods. This is not an average.
How do I trade with this Indicator?
Unless there's a lot of recent price movement, enough to pull the price away from the 26-period midpoint, the Kijun-sen will often trade near and intersect with the current price. At times like these, it is not an ideal tool for helping with trend direction. If, however, there is a strong price move away from Kijun Sen and the gap between Kijun Sen and the price is "increasing" or "widening", this is an indication that a trend is forming.
Kijun Sen Base can be used to confirm a trend and is a clean addition to other indicators the trader may use on their charts while at the same time keeping the chart less cluttered.
Happy Trading and Good Luck!
TPS - FX TradeI based my strategy on the Lagging Span 2 line in the Ichimoku Cloud. I actually designed the strategy for the DAX Germany index 3 Minutes period, but you can use it on any instrument you want. I would like to point out some points that you should pay attention to when optimizing the strategy for the instrument you want to use.
Position Take Profit and Stop Loss levels are tick calculations. These values will differ for each instrument. If you are trading in Forex, the values you will write here should be starting from the numbers after the comma in the instrument value. For example, if you want to take profit at "200" points in DAX, you must write "20000" in the Long or Short Take Profit Score field, this applies to the Stop Loss Points, but if you want to take profit or stop loss at 200 points in UKOIL, you must write "200" in the entry part.
Ichimoku ScreenerChecks the status of Ichimoku Cloud for 30 coins/stocks.
It may take several seconds ( around 30 sec ) to load.
Ichimoku+Based on the ichimoku cloud system, this indicator gives two presets: Standard (9/26/52/26) and Crypto (20/60/120/30).
This also shows on a chart where Tenkan-Kijun cross happens and when a Kumo Twist happens.
taLibrary "ta"
█ OVERVIEW
This library holds technical analysis functions calculating values for which no Pine built-in exists.
Look first. Then leap.
█ FUNCTIONS
cagr(entryTime, entryPrice, exitTime, exitPrice)
It calculates the "Compound Annual Growth Rate" between two points in time. The CAGR is a notional, annualized growth rate that assumes all profits are reinvested. It only takes into account the prices of the two end points — not drawdowns, so it does not calculate risk. It can be used as a yardstick to compare the performance of two instruments. Because it annualizes values, the function requires a minimum of one day between the two end points (annualizing returns over smaller periods of times doesn't produce very meaningful figures).
Parameters:
entryTime : The starting timestamp.
entryPrice : The starting point's price.
exitTime : The ending timestamp.
exitPrice : The ending point's price.
Returns: CAGR in % (50 is 50%). Returns `na` if there is not >=1D between `entryTime` and `exitTime`, or until the two time points have not been reached by the script.
█ v2, Mar. 8, 2022
Added functions `allTimeHigh()` and `allTimeLow()` to find the highest or lowest value of a source from the first historical bar to the current bar. These functions will not look ahead; they will only return new highs/lows on the bar where they occur.
allTimeHigh(src)
Tracks the highest value of `src` from the first historical bar to the current bar.
Parameters:
src : (series int/float) Series to track. Optional. The default is `high`.
Returns: (float) The highest value tracked.
allTimeLow(src)
Tracks the lowest value of `src` from the first historical bar to the current bar.
Parameters:
src : (series int/float) Series to track. Optional. The default is `low`.
Returns: (float) The lowest value tracked.
█ v3, Sept. 27, 2022
This version includes the following new functions:
aroon(length)
Calculates the values of the Aroon indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
Returns: ( [float, float ]) A tuple of the Aroon-Up and Aroon-Down values.
coppock(source, longLength, shortLength, smoothLength)
Calculates the value of the Coppock Curve indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
longLength (simple int) : (simple int) Number of bars for the fast ROC value (length).
shortLength (simple int) : (simple int) Number of bars for the slow ROC value (length).
smoothLength (simple int) : (simple int) Number of bars for the weigted moving average value (length).
Returns: (float) The oscillator value.
dema(source, length)
Calculates the value of the Double Exponential Moving Average (DEMA).
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The double exponentially weighted moving average of the `source`.
dema2(src, length)
An alternate Double Exponential Moving Average (Dema) function to `dema()`, which allows a "series float" length argument.
Parameters:
src : (series int/float) Series of values to process.
length : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The double exponentially weighted moving average of the `src`.
dm(length)
Calculates the value of the "Demarker" indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
Returns: (float) The oscillator value.
donchian(length)
Calculates the values of a Donchian Channel using `high` and `low` over a given `length`.
Parameters:
length (int) : (series int) Number of bars (length).
Returns: ( [float, float, float ]) A tuple containing the channel high, low, and median, respectively.
ema2(src, length)
An alternate ema function to the `ta.ema()` built-in, which allows a "series float" length argument.
Parameters:
src : (series int/float) Series of values to process.
length : (series int/float) Number of bars (length).
Returns: (float) The exponentially weighted moving average of the `src`.
eom(length, div)
Calculates the value of the Ease of Movement indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
div (simple int) : (simple int) Divisor used for normalzing values. Optional. The default is 10000.
Returns: (float) The oscillator value.
frama(source, length)
The Fractal Adaptive Moving Average (FRAMA), developed by John Ehlers, is an adaptive moving average that dynamically adjusts its lookback period based on fractal geometry.
Parameters:
source (float) : (series int/float) Series of values to process.
length (int) : (series int) Number of bars (length).
Returns: (float) The fractal adaptive moving average of the `source`.
ft(source, length)
Calculates the value of the Fisher Transform indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Number of bars (length).
Returns: (float) The oscillator value.
ht(source)
Calculates the value of the Hilbert Transform indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
Returns: (float) The oscillator value.
ichimoku(conLength, baseLength, senkouLength)
Calculates values of the Ichimoku Cloud indicator, including tenkan, kijun, senkouSpan1, senkouSpan2, and chikou. NOTE: offsets forward or backward can be done using the `offset` argument in `plot()`.
Parameters:
conLength (int) : (series int) Length for the Conversion Line (Tenkan). The default is 9 periods, which returns the mid-point of the 9 period Donchian Channel.
baseLength (int) : (series int) Length for the Base Line (Kijun-sen). The default is 26 periods, which returns the mid-point of the 26 period Donchian Channel.
senkouLength (int) : (series int) Length for the Senkou Span 2 (Leading Span B). The default is 52 periods, which returns the mid-point of the 52 period Donchian Channel.
Returns: ( [float, float, float, float, float ]) A tuple of the Tenkan, Kijun, Senkou Span 1, Senkou Span 2, and Chikou Span values. NOTE: by default, the senkouSpan1 and senkouSpan2 should be plotted 26 periods in the future, and the Chikou Span plotted 26 days in the past.
ift(source)
Calculates the value of the Inverse Fisher Transform indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
Returns: (float) The oscillator value.
kvo(fastLen, slowLen, trigLen)
Calculates the values of the Klinger Volume Oscillator.
Parameters:
fastLen (simple int) : (simple int) Length for the fast moving average smoothing parameter calculation.
slowLen (simple int) : (simple int) Length for the slow moving average smoothing parameter calculation.
trigLen (simple int) : (simple int) Length for the trigger moving average smoothing parameter calculation.
Returns: ( [float, float ]) A tuple of the KVO value, and the trigger value.
pzo(length)
Calculates the value of the Price Zone Oscillator.
Parameters:
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
rms(source, length)
Calculates the Root Mean Square of the `source` over the `length`.
Parameters:
source (float) : (series int/float) Series of values to process.
length (int) : (series int) Number of bars (length).
Returns: (float) The RMS value.
rwi(length)
Calculates the values of the Random Walk Index.
Parameters:
length (simple int) : (simple int) Lookback and ATR smoothing parameter length.
Returns: ( [float, float ]) A tuple of the `rwiHigh` and `rwiLow` values.
stc(source, fast, slow, cycle, d1, d2)
Calculates the value of the Schaff Trend Cycle indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
fast (simple int) : (simple int) Length for the MACD fast smoothing parameter calculation.
slow (simple int) : (simple int) Length for the MACD slow smoothing parameter calculation.
cycle (simple int) : (simple int) Number of bars for the Stochastic values (length).
d1 (simple int) : (simple int) Length for the initial %D smoothing parameter calculation.
d2 (simple int) : (simple int) Length for the final %D smoothing parameter calculation.
Returns: (float) The oscillator value.
stochFull(periodK, smoothK, periodD)
Calculates the %K and %D values of the Full Stochastic indicator.
Parameters:
periodK (simple int) : (simple int) Number of bars for Stochastic calculation. (length).
smoothK (simple int) : (simple int) Number of bars for smoothing of the %K value (length).
periodD (simple int) : (simple int) Number of bars for smoothing of the %D value (length).
Returns: ( [float, float ]) A tuple of the slow %K and the %D moving average values.
stochRsi(lengthRsi, periodK, smoothK, periodD, source)
Calculates the %K and %D values of the Stochastic RSI indicator.
Parameters:
lengthRsi (simple int) : (simple int) Length for the RSI smoothing parameter calculation.
periodK (simple int) : (simple int) Number of bars for Stochastic calculation. (length).
smoothK (simple int) : (simple int) Number of bars for smoothing of the %K value (length).
periodD (simple int) : (simple int) Number of bars for smoothing of the %D value (length).
source (float) : (series int/float) Series of values to process. Optional. The default is `close`.
Returns: ( [float, float ]) A tuple of the slow %K and the %D moving average values.
supertrend(factor, atrLength, wicks)
Calculates the values of the SuperTrend indicator with the ability to take candle wicks into account, rather than only the closing price.
Parameters:
factor (float) : (series int/float) Multiplier for the ATR value.
atrLength (simple int) : (simple int) Length for the ATR smoothing parameter calculation.
wicks (simple bool) : (simple bool) Condition to determine whether to take candle wicks into account when reversing trend, or to use the close price. Optional. Default is false.
Returns: ( [float, int ]) A tuple of the superTrend value and trend direction.
szo(source, length)
Calculates the value of the Sentiment Zone Oscillator.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
t3(source, length, vf)
Calculates the value of the Tilson Moving Average (T3).
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
vf (simple float) : (simple float) Volume factor. Affects the responsiveness.
Returns: (float) The Tilson moving average of the `source`.
t3Alt(source, length, vf)
An alternate Tilson Moving Average (T3) function to `t3()`, which allows a "series float" `length` argument.
Parameters:
source (float) : (series int/float) Series of values to process.
length (float) : (series int/float) Length for the smoothing parameter calculation.
vf (simple float) : (simple float) Volume factor. Affects the responsiveness.
Returns: (float) The Tilson moving average of the `source`.
tema(source, length)
Calculates the value of the Triple Exponential Moving Average (TEMA).
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The triple exponentially weighted moving average of the `source`.
tema2(source, length)
An alternate Triple Exponential Moving Average (TEMA) function to `tema()`, which allows a "series float" `length` argument.
Parameters:
source (float) : (series int/float) Series of values to process.
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The triple exponentially weighted moving average of the `source`.
trima(source, length)
Calculates the value of the Triangular Moving Average (TRIMA).
Parameters:
source (float) : (series int/float) Series of values to process.
length (int) : (series int) Number of bars (length).
Returns: (float) The triangular moving average of the `source`.
trima2(src, length)
An alternate Triangular Moving Average (TRIMA) function to `trima()`, which allows a "series int" length argument.
Parameters:
src : (series int/float) Series of values to process.
length : (series int) Number of bars (length).
Returns: (float) The triangular moving average of the `src`.
trix(source, length, signalLength, exponential)
Calculates the values of the TRIX indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
signalLength (simple int) : (simple int) Length for smoothing the signal line.
exponential (simple bool) : (simple bool) Condition to determine whether exponential or simple smoothing is used. Optional. The default is `true` (exponential smoothing).
Returns: ( [float, float, float ]) A tuple of the TRIX value, the signal value, and the histogram.
uo(fastLen, midLen, slowLen)
Calculates the value of the Ultimate Oscillator.
Parameters:
fastLen (simple int) : (series int) Number of bars for the fast smoothing average (length).
midLen (simple int) : (series int) Number of bars for the middle smoothing average (length).
slowLen (simple int) : (series int) Number of bars for the slow smoothing average (length).
Returns: (float) The oscillator value.
vhf(source, length)
Calculates the value of the Vertical Horizontal Filter.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Number of bars (length).
Returns: (float) The oscillator value.
vi(length)
Calculates the values of the Vortex Indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
Returns: ( [float, float ]) A tuple of the viPlus and viMinus values.
vzo(length)
Calculates the value of the Volume Zone Oscillator.
Parameters:
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
williamsFractal(period)
Detects Williams Fractals.
Parameters:
period (int) : (series int) Number of bars (length).
Returns: ( [bool, bool ]) A tuple of an up fractal and down fractal. Variables are true when detected.
wpo(length)
Calculates the value of the Wave Period Oscillator.
Parameters:
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
█ v7, Nov. 2, 2023
This version includes the following new and updated functions:
atr2(length)
An alternate ATR function to the `ta.atr()` built-in, which allows a "series float" `length` argument.
Parameters:
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The ATR value.
changePercent(newValue, oldValue)
Calculates the percentage difference between two distinct values.
Parameters:
newValue (float) : (series int/float) The current value.
oldValue (float) : (series int/float) The previous value.
Returns: (float) The percentage change from the `oldValue` to the `newValue`.
donchian(length)
Calculates the values of a Donchian Channel using `high` and `low` over a given `length`.
Parameters:
length (int) : (series int) Number of bars (length).
Returns: ( [float, float, float ]) A tuple containing the channel high, low, and median, respectively.
highestSince(cond, source)
Tracks the highest value of a series since the last occurrence of a condition.
Parameters:
cond (bool) : (series bool) A condition which, when `true`, resets the tracking of the highest `source`.
source (float) : (series int/float) Series of values to process. Optional. The default is `high`.
Returns: (float) The highest `source` value since the last time the `cond` was `true`.
lowestSince(cond, source)
Tracks the lowest value of a series since the last occurrence of a condition.
Parameters:
cond (bool) : (series bool) A condition which, when `true`, resets the tracking of the lowest `source`.
source (float) : (series int/float) Series of values to process. Optional. The default is `low`.
Returns: (float) The lowest `source` value since the last time the `cond` was `true`.
relativeVolume(length, anchorTimeframe, isCumulative, adjustRealtime)
Calculates the volume since the last change in the time value from the `anchorTimeframe`, the historical average volume using bars from past periods that have the same relative time offset as the current bar from the start of its period, and the ratio of these volumes. The volume values are cumulative by default, but can be adjusted to non-accumulated with the `isCumulative` parameter.
Parameters:
length (simple int) : (simple int) The number of periods to use for the historical average calculation.
anchorTimeframe (simple string) : (simple string) The anchor timeframe used in the calculation. Optional. Default is "D".
isCumulative (simple bool) : (simple bool) If `true`, the volume values will be accumulated since the start of the last `anchorTimeframe`. If `false`, values will be used without accumulation. Optional. The default is `true`.
adjustRealtime (simple bool) : (simple bool) If `true`, estimates the cumulative value on unclosed bars based on the data since the last `anchor` condition. Optional. The default is `false`.
Returns: ( [float, float, float ]) A tuple of three float values. The first element is the current volume. The second is the average of volumes at equivalent time offsets from past anchors over the specified number of periods. The third is the ratio of the current volume to the historical average volume.
rma2(source, length)
An alternate RMA function to the `ta.rma()` built-in, which allows a "series float" `length` argument.
Parameters:
source (float) : (series int/float) Series of values to process.
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The rolling moving average of the `source`.
supertrend2(factor, atrLength, wicks)
An alternate SuperTrend function to `supertrend()`, which allows a "series float" `atrLength` argument.
Parameters:
factor (float) : (series int/float) Multiplier for the ATR value.
atrLength (float) : (series int/float) Length for the ATR smoothing parameter calculation.
wicks (simple bool) : (simple bool) Condition to determine whether to take candle wicks into account when reversing trend, or to use the close price. Optional. Default is `false`.
Returns: ( [float, int ]) A tuple of the superTrend value and trend direction.
vStop(source, atrLength, atrFactor)
Calculates an ATR-based stop value that trails behind the `source`. Can serve as a possible stop-loss guide and trend identifier.
Parameters:
source (float) : (series int/float) Series of values that the stop trails behind.
atrLength (simple int) : (simple int) Length for the ATR smoothing parameter calculation.
atrFactor (float) : (series int/float) The multiplier of the ATR value. Affects the maximum distance between the stop and the `source` value. A value of 1 means the maximum distance is 100% of the ATR value. Optional. The default is 1.
Returns: ( [float, bool ]) A tuple of the volatility stop value and the trend direction as a "bool".
vStop2(source, atrLength, atrFactor)
An alternate Volatility Stop function to `vStop()`, which allows a "series float" `atrLength` argument.
Parameters:
source (float) : (series int/float) Series of values that the stop trails behind.
atrLength (float) : (series int/float) Length for the ATR smoothing parameter calculation.
atrFactor (float) : (series int/float) The multiplier of the ATR value. Affects the maximum distance between the stop and the `source` value. A value of 1 means the maximum distance is 100% of the ATR value. Optional. The default is 1.
Returns: ( [float, bool ]) A tuple of the volatility stop value and the trend direction as a "bool".
Removed Functions:
allTimeHigh(src)
Tracks the highest value of `src` from the first historical bar to the current bar.
allTimeLow(src)
Tracks the lowest value of `src` from the first historical bar to the current bar.
trima2(src, length)
An alternate Triangular Moving Average (TRIMA) function to `trima()`, which allows a
"series int" length argument.